class Solution {
public:
    int FindGreatestSumOfSubArray(vector<int> array) {
  		if(array.empty())
  			return 0;
  		int sum = 0,max = 0;
  		for(int i = 0 ; i < array.size() ; ++i)
  		{
  			sum += array[i];
  			if(sum <= 0)
  				sum = 0;
  			else
  			{
  				if( sum > max)
  					max = sum;
  			}
  		}
  		if(max == 0)
  		{
  			max = array[0];
  			for(int i = 1 ; i < array.size() ; ++i)
  				if(array[i] > max)
  					max = array[i];
  		}
  		return max;
    }
};